Skip to content

feat: add vetkeys password manager example#1333

Merged
andreacerulli merged 3 commits intovetkeys-examplesfrom
vetkeys-password-manager
Apr 21, 2026
Merged

feat: add vetkeys password manager example#1333
andreacerulli merged 3 commits intovetkeys-examplesfrom
vetkeys-password-manager

Conversation

@andreacerulli
Copy link
Copy Markdown
Contributor

Move the password manager vetkeys examples from the dfinity/vetkeys repository into rust/vetkeys/. It includes frontend, Rust backend, and Motoko backend.

The password_manager example had symlinks to the vetkeys repo's
shared backend canisters. Copy the actual source (rust and motoko)
to make the example self-contained. Also replace the
rust-toolchain.toml symlink with the actual file.
@andreacerulli andreacerulli force-pushed the vetkeys-password-manager branch from b056a8c to e879140 Compare April 20, 2026 15:08
@andreacerulli andreacerulli force-pushed the vetkeys-encrypted-notes branch from beff218 to deadd93 Compare April 20, 2026 15:08
@andreacerulli andreacerulli marked this pull request as ready for review April 20, 2026 15:36
@andreacerulli andreacerulli requested a review from a team as a code owner April 20, 2026 15:36
@andreacerulli andreacerulli requested a review from fspreiss April 20, 2026 19:17
@fspreiss
Copy link
Copy Markdown
Contributor

fspreiss commented Apr 20, 2026

ICP Ninja links for this branch (just for reference):

For Motoko, login and storing passwords seems to work.

For Rust, deployment fails with

Build failed: WARNING: Skipped audit step as there is no Cargo.lock file.
Building canister 'ic_vetkeys_encrypted_maps_canister'.
Executing: cargo build --target wasm32-unknown-unknown --release -p ic-vetkeys-encrypted-maps-canister --locked
    Updating crates.io index
error: the lock file /workdir/Cargo.lock needs to be updated but --locked was passed to prevent this
If you want to try to generate the lock file without accessing the network, remove the --locked flag and use --offline instead.
Building canister 'www'.
Executing 'cd frontend && npm i --include=dev && npm run build && cd - && rm -r dist > /dev/null 2>&1; mv frontend/dist ./'
npm warn deprecated @dfinity/principal@2.4.1: This package has been deprecated. Use @icp-sdk/core/principal instead. Migration guide: 
https://js.icp.build/core/latest/upgrading/v5
npm warn deprecated @dfinity/auth-client@2.4.1: This package has been deprecated. Its functionality is now part of `@icp-sdk/auth` (
https://js.icp.build/auth),
 under the `client` submodule.
npm warn deprecated @dfinity/identity@2.4.1: This package has been deprecated. Use @icp-sdk/core/identity instead. Migration guide: 
https://js.icp.build/core/latest/upgrading/v5
npm warn deprecated @dfinity/candid@2.4.1: This package has been deprecated. Use @icp-sdk/core/candid instead. Migration guide: 
https://js.icp.build/core/latest/upgrading/v5
npm warn deprecated @dfinity/agent@2.4.1: This package has been deprecated. Use @icp-sdk/core/agent instead. Migration guide: 
https://js.icp.build/core/latest/upgrading/v5
added 273 packages, and audited 274 packages in 30s
79 packages are looking for funding
  run `npm fund` for details
8 moderate severity vulnerabilities
To address all issues (including breaking changes), run:
  npm audit fix --force
Run `npm audit` for details.
npm notice
npm notice New major version of npm available! 10.8.2 -> 11.12.1
npm notice Changelog: 
https://github.com/npm/cli/releases/tag/v11.12.1
npm notice To update run: npm install -g npm@11.12.1
npm notice
> password-manager-frontend@0.1.0 build
> vite build
vite v5.4.21 building for production...
[plugin:typescript] [plugin typescript] @rollup/plugin-typescript TS5096: Option 'allowImportingTsExtensions' can only be used when one of 'noEmit', 'emitDeclarationOnly', or 'rewriteRelativeImportExtensions' is set.
./bundle.css doesn't exist at build time, it will remain unchanged to be resolved at runtime
transforming...
(node:165) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
(node:165) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
🌼   daisyUI 4.12.24
├─ ✔︎ 2 themes added		
https://daisyui.com/docs/themes
╰─ ❤︎ Support daisyUI project:	
https://opencollective.com/daisyui
✓ 301 modules transformed.
rendering chunks...
computing gzip size...
dist/index.html                  0.48 kB │ gzip:   0.30 kB
dist/bundle.css                 67.48 kB │ gzip:  11.75 kB
dist/assets/index-DeAekZWc.js  738.02 kB │ gzip: 245.09 kB │ map: 2,944.52 kB
(!) Some chunks are larger than 500 kB after minification. Consider:
- Using dynamic import() to code-split the application
- Use build.rollupOptions.output.manualChunks to improve chunking: 
https://rollupjs.org/configuration-options/#output-manualchunks
- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.
✓ built in 6.19s
/workdir
Error: Failed while trying to build all canisters.
Caused by: The build step failed for canister 'zgay6-caaaa-aaaai-rafkq-cai' (ic_vetkeys_encrypted_maps_canister)
Caused by: Failed to build Rust canister 'ic_vetkeys_encrypted_maps_canister'.
Caused by: Failed to compile the rust package: ic-vetkeys-encrypted-maps-canister

Let's fix these (and extend the ICP Ninja deployment workflow) in a separate PR.

Base automatically changed from vetkeys-encrypted-notes to vetkeys-examples April 21, 2026 09:02
@andreacerulli andreacerulli merged commit a04e4e0 into vetkeys-examples Apr 21, 2026
@andreacerulli andreacerulli deleted the vetkeys-password-manager branch April 21, 2026 09:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants